/**
* 创建者：luyiming
* 该组件用于：
* 创建时间： 2019-12-24 17:55:43
* @param 参数说明
* @emit 事件使用说明
*/

import { rcimTree } from '@/api/RCIM/RCIM-system.js';
import ScrollPane from '@/components/luyiming/ScrollPane/ScrollPane.vue'
export default {
	name: 'SystemTree_cmp',
	components: {
		ScrollPane
	},
	props: {
		// 这是示例数据的通途
		example: {
			type: Array,
			default: () => []
		},
		nodeType: {
			type: Array,
			default: () => ["root"]
		},
		listData: {
			type: Array,
			default: () => []
		},
		defaultSelect: {
			type: Array,
			default: () => []
		},
	},
	// 数据
	data() {
		return {
			filterText: '',
			// 树的类型
			treeType: 'org',
			treeData: {},
			data: [],
			treeProps: {
				label: 'name',
			},
			// 初始化被选中的节点
			currentNodeKey: "",
			// 初始化默认展开的树节点数组
			defaultExpand: [],
			loading: false,
		}
	},
	// 监听
	watch: {
		filterText(val) {
			this.$refs.tree.filter(val);
		},
		treeType(val) {
			this.data = this.treeData[val]
		},
		listData(value){
			this.data = value
		},
		data(){
			this.$nextTick(() => {
				this.loading = false;

			})
		},
	},
	// Vue实例初始化完成
	created() {
		this.loading = true;
	},
	// Vue挂载完成
	mounted() {
	},
	// Vue实例销毁前
	beforeDestroy() {

	},
	// 挂载的方法
	methods: {
        /**
        * 方法描述
        */
		exampleFunc() {
			return void 0
		},
		getDefaultChooseNode(type="org"){
			const firstChoose = this.nodeType[0]
			const tree = this.treeData[type]
			const node = this.getChooseNode(tree, firstChoose)
			return node
			// 不是用源设备
			// if(param.type !== 'raddevice'){
			// 	return
			// }
		},
		getChooseNode(list = [], type = "root", result = []){
			list.forEach( item => {
				if(item.type === type){
					return result.push(item)
				}
				if(item.children){
					this.getChooseNode(item.children, type, result)
				}
			})
			return result
		},
		/**
		 * 树的点击
		 */
		handleCheckChange(){
			const Nodes = this.$refs.tree.getCheckedNodes();
			this.$emit('handleEvent', Nodes)
		},
	},
}
